package cn.itcast.mapper;

import cn.itcast.vo.*;
import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper
public interface ReportMapper {
    //SELECT DATE_FORMAT(regTime,'%Y-%m') AS months,COUNT(*) as memberCount FROM t_member GROUP BY months
    /**
     * 查询最近12个月, 会员数量变化情况 , 以折线图展示出来
     * @return
     */
    List<MemberCountVo> selectCountGroupByMonth();

    /**
     * 统计整个系统所有套餐的预约占比情况 , 以饼图展示出来
     * @return
     */
    List<SetMealVo> selectSetMealCount();

    /**
     * 统计出最近12个月,每个月的收入情况, 以柱形图展示
     * @return
     */
    List<IncomeVo> selectIncomeGroupByMonth();

    /**
     * 查询最近12个月的预约数量以及支付数量 , 以折线图展示
     * @return
     */
    List<OrderVo> selectOrderAndPayCount();

    /**
     * 查询当日新增会员数
     * @return
     */
    String selectTodayNewMember();

    /**
     * 查询总会员数
     * @return
     */
    String selectTotalMember();

    /**
     * 查询本周新增会员数
     * @return
     */
    String selectThisWeekNewMember();

    /**
     * 查询本月新增会员数
     * @return
     */
    String selectThisMonthNewMember();

    /**
     * 查询今日预约数
     * @return
     */
    String selectTodayOrderNumber();

    /**
     * 查询今日到诊数
     * @return
     */
    String selectTodayVisitsNumber();

    /**
     * 查询本周预约数
     * @return
     */
    String selectThisWeekOrderNumber();

    /**
     * 查询本周到诊数
     * @return
     */
    String selectThisWeekVisitsNumber();

    /**
     * 查询本月预约数
     * @return
     */
    String selectThisMonthOrderNumber();

    /**
     * 查询本月到诊数
     * @return
     */
    String selectThisMonthVisitsNumber();

    /**
     * 查询热点套餐
     * @return
     */
    List<HotSetmeal> selectHotSetmealAndOrderCount();
}
